<template>
    <div>
         <!-- 面包屑导航区域 -->
        <el-breadcrumb separator="/">
            <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>订单管理</el-breadcrumb-item>
            <el-breadcrumb-item>订单列表</el-breadcrumb-item>
        </el-breadcrumb>
        <!-- 卡片区域 -->
        <el-card>
            <el-row>
                <el-col :span="7">
                     <el-input placeholder="请输入内容" v-model="queryInfo.query" clearable @clear="getlist">
                             <el-button slot="append" icon="el-icon-search" @click="getlist"></el-button>
                     </el-input>
                </el-col>
            </el-row>
            <!-- 订单table列表 -->
            <el-table :data="Orderdata" border stripe>
                <el-table-column type="index"></el-table-column>
                <el-table-column label="订单编号" prop="order_number"></el-table-column>
                <el-table-column label="订单价格" width="80px" prop="order_price"></el-table-column>
                <el-table-column label="是否付款" prop="order_pay" width="100px">
                    <template slot-scope="scope">
                    <el-tag type="danger" v-if="scope.row.order_pay === '0'">未付款</el-tag>                       
                    <el-tag type="success" v-else>已付款</el-tag>                       
                    </template>
                </el-table-column>
                <el-table-column label="是否发货" prop="is_send" width="80px"></el-table-column>
                <el-table-column label="下单时间" prop="create_time" width="150px">
                      <template slot-scope="scope">
                        {{scope.row.create_time | dateFormat}}
                     </template>
                </el-table-column>
                <el-table-column label="操作" width="200px">
                    <template slot-scope="scope">
                       <el-button type="primary" icon="el-icon-edit" @click="showVisible"></el-button>
                       <el-button type="success" icon="el-icon-location-outline" @click="showProgressBox"></el-button>
                    </template>
                </el-table-column>
            </el-table>
            <!-- 分页功能 -->
             <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="queryInfo.pagenum"
            :page-sizes="[1, 5, 10, 15]"
            :page-size="queryInfo.pagesize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
            </el-pagination>
        </el-card>
        <!-- 展示修改地址对话框 -->
        <el-dialog
            title="修改地址"
            :visible.sync="addressVisible"
            width="50%" @close="addressClosed">
            <el-form :rules="addressRules" ref="addressRef" :model="addressform" label-width="100px">
                <el-form-item label="省市区/县" prop="address1">
                <el-cascader
                    :options="citydata" v-model="addressform.address1">
                </el-cascader>
                </el-form-item>
                <el-form-item label="详细地址" prop="address2">
                    <el-input v-model="addressform.address2"></el-input>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-button @click="addressVisible = false">取 消</el-button>
                <el-button type="primary" @click="addressVisible = false">确 定</el-button>
            </span>
        </el-dialog>

        <!-- 展示物流进度的对话框 -->
        <el-dialog
            title="物流进度"
            :visible.sync="progressVisible"
            width="50%">
            <el-timeline>
                    <el-timeline-item
                    v-for="(activity, index) in progressInfo"
                    :key="index"
                    :timestamp="activity.time">
                    {{activity.context}}
                    </el-timeline-item>
            </el-timeline>
            <!-- <span slot="footer" class="dialog-footer">
                <el-button @click="progressVisible = false">取 消</el-button>
                <el-button type="primary" @click="progressVisible = false">确 定</el-button>
            </span> -->
        </el-dialog>
    </div>
</template>

<script>

import citydata from './citydata.js'

export default {
    data () {
        return {
            // 查询参数对象
          queryInfo:{
              query:'',
              pagenum: 1,
              pagesize: 10
          },
        //   订单数据
         Orderdata:[], 
        //  总页数
         total:0,
        //  修改地址回话框显示与隐藏
         addressVisible:false,
        //  数据对象
         addressform:{
            address1:[],
            address2:''
         },
        //  验证规则对象
        addressRules: {
            address1: [
                 {required:true,message:'请选择省市区/县名',trigger:'blur'}
            ],
             address2: [
                 {required:true,message:'请选择详细地址',trigger:'blur'}
            ]
        },
        // 属性名属性值重名简写
        citydata,
        // 物流对话框的显示与隐藏
        progressVisible: false,
        // 获取到的物流信息
        progressInfo:[]
        }
    },
    created () {
        this.getlist()
    },
    methods: {
       async getlist () {
           const {data: res} = await this.$http.get('orders',{
             params: this.queryInfo
           })
           if (res.meta.status !== 200) {
               return this.$message.error('获取订单列表数据失败!')
           }
            console.log(res);
            this.Orderdata = res.data.goods
            this.total = res.data.total
        },
           // 监听pagesize改变的事件
        handleSizeChange(newSize) {
        // console.log(newSize);
          this.queryInfo.pagesize = newSize
           this.getlist()
        },
        //监听 页码值 改变的事件
        handleCurrentChange(newPage) {
        // console.log(newPage);
          this.queryInfo.pagenum = newPage
          this.getlist()
        },
        // 点击显示对话框
        showVisible () {
          this.addressVisible = true
        },
        addressClosed () {
             this.$refs.addressRef.resetFields()
        },
       async showProgressBox () {
          const {data: res} = await this.$http.get('/kuaidi/1106975712662')
          console.log(res);
          if (res.meta.status !== 200) {
              return this.$message.error('获取物流信息失败!')
          }
          this.progressInfo = res.data
          console.log(this.progressInfo);
          
            this.progressVisible = true

        }
    }
}
</script>

<style lang="less" scoped>
.el-cascader {
    width: 100%;
}
</style>